Calling all programmers #codelopnik

Kinja'd!!! "TDogg" (needamiata)
01/05/2015 at 22:13 • Filed to: codelopnik, programming

Kinja'd!!!0 Kinja'd!!! 20

I need to choose two software development electives for this semester, but I want to take them all! Help me decide?

I've had a class in C++, as well as very brief self-taught experience with Python, Javascript Ruby, and PHP. Basically, I want to know which of these electives would be best for me to have under my belt to get me job. Any job really, but some sort of (probably desktop) software development preferably or at least mobile dev or server administration or something.

I pretty much just want a job in a field where I can flex my programming muscles on a regular basis. Anyways, here are the classes I have to choose from - one class from each section. I do have a preference towards Linux & Android, if that's relevant.

Selective I:

-Software Development using Java

-SDev using Visual Basic

-SDev using Python

-SDev using C++

-SDev using C#

-Server-side Scripting Languages and Tools

Selective II:

-Reverse Engineering Malware

-Oracle Database Administration I

-Database Design and Development

-Data Management using SQL

-Business Intelligence, Data Warehousing, and Reporting (wtf?)

-Special Topics in Software Developement

-Advanced Special Topics in Software Developement

Jaaaaag for your time

Kinja'd!!!

DISCUSSION (20)


Kinja'd!!! ToyDeathbot > TDogg
01/05/2015 at 22:51

Kinja'd!!!1

well out of linux and android, it is android which has the bigger market and is expanding at a phenomenal rate. So it'd say go with Java.

as with your second elective, it's really your choice as it will complement your language!


Kinja'd!!! Doge_Supreme drives a BRZ > TDogg
01/05/2015 at 22:55

Kinja'd!!!0

Do python or C# for your first one. the class I'm in right now my instructor is recommended those two. Since I'm influenced by being a Cyber Security major I say take Reverse Engineering Malware it sounds like fun.


Kinja'd!!! TDogg > ToyDeathbot
01/05/2015 at 22:58

Kinja'd!!!0

I'm also taking a Mobile Development course, so I'll be learning Java in a mobile environment at least. Would it be worthwhile to take the standard Java course as well, you think?


Kinja'd!!! TDogg > Doge_Supreme drives a BRZ
01/05/2015 at 23:00

Kinja'd!!!0

My biggest concern right now is that I don't know which languages tend to be used for what purposes. What are Python and C# best known/used for?


Kinja'd!!! Doge_Supreme drives a BRZ > TDogg
01/05/2015 at 23:02

Kinja'd!!!0

Python is more or less an intro language. C# is a big up and comer for bigger programming jobs and is sort of the successor of C++


Kinja'd!!! ToyDeathbot > TDogg
01/05/2015 at 23:06

Kinja'd!!!1

oh, then it's probably better to take C++.

From what I've heard, it's better to be able to code with multiple languages than to be a master at only one language. After all, you only need to get the gist of how the language works and then you can refer to the documentation.


Kinja'd!!! Doge_Supreme drives a BRZ > TDogg
01/05/2015 at 23:08

Kinja'd!!!0

C++ is also good because its the basis for C#, Basic, and Java


Kinja'd!!! 44444444444 > TDogg
01/05/2015 at 23:08

Kinja'd!!!1

C++

Does everything. Goes over to Java (similar syntax), and is close to what Apple uses in iOS.


Kinja'd!!! thejustache > TDogg
01/05/2015 at 23:39

Kinja'd!!!0

If you want to do android stuff I'd say Java, although you say you're already learning that in another class. It's very comparable to C# if you decide to work in that at some point. I'm primarily a C# .NET developer myself, at the moment I work on the back end of a RFID Door Access application and on software that lets hospital employees pay for cafeteria food with their employee badge. I'd say for linux stuff and things involving hardware C++ is great to know, although with Microsoft saying .Net 5 will be cross platform we'll see shortly if C# becomes viable there, I have my fingers crossed.

Definitely take all of the database related courses you can, I still can't believe I graduated with as little sql experience as I did given how often I work with them on a daily basis!


Kinja'd!!! The Transporter > TDogg
01/05/2015 at 23:40

Kinja'd!!!1

I'd personally go with Java seeing as it's the most popular programming language right now, but if you learn one, you're about 90% of the way to learning every other one. C++ would also be a good option.

I have no interest in database management or data mining, so I couldn't tell you which of those classes would be the best. The "Special Topics in Software Development" class sounds interesting, though.


Kinja'd!!! TDogg > thejustache
01/05/2015 at 23:50

Kinja'd!!!0

Ironically, I work at a hospital and we use the badge payment system you described - it's super convenient!

So, it sounds like you'd recommend C++/C# and SQL since I'll be getting Java experience already?


Kinja'd!!! thejustache > TDogg
01/06/2015 at 00:01

Kinja'd!!!1

Oh cool! I know we're not the only one that makes software like that, but we do sell a lot of it so it's quite possible it's ours. Yeah I'd say you can never go wrong with C++, it's a great foundation to have no matter what you end up doing. Most business software I see today tends to be written in either C# or Java, but thankfully they are pretty similar so even if you are better at one you can probably still manage the other. And then there is web programming, but there are so many options there and it's not something I do much anymore so I wouldn't even know what to recommend...


Kinja'd!!! JasonStern911 > TDogg
01/06/2015 at 00:03

Kinja'd!!!1

Selective I:

-Software Development using Java

Moderate/high relevance. Probably better learning C++ as it's easier to write effectively in a high level language after learning a low level language than vice-versa.

-SDev using Visual Basic

Very low/diminishing relevance. Take this if you want to maintain legacy code code or write design documents for foreign contractors.

-SDev using Python

Moderate to low relevance. Take if you're interested in being a tools programmer or maintain the version control system.

-SDev using C++

High relevance. If programming languages are tools, C++ is the equivalent of hammer and duct tape. Anything any other language can do, C++ can do, too - albeit likely in a much more error prone and convoluted way - the reverse is not true.

-SDev using C#

Moderate/high relevance. Take if you want to learn Java and Javascript but fear leaving Visual Studio's IDE.

-Server-side Scripting Languages and Tools

High relevance, but unless you're interested in it, it's not as fun/rewarding. Honestly, if you're interested in the Python class, this probably is a better choice. Take if you're interested in being a tools programmer or maintain the version control system.

Selective II:

-Reverse Engineering Malware

Low relevance, but probably incredibly interesting. Incredibly interesting doesn't always translate to jobs, though.

-Oracle Database Administration I

Moderate/high relevance, but unless you like database programming, it's going to suck.

-Database Design and Development

High relevance, but unless you like database programming, it's going to suck.

-Data Management using SQL

High relevance, but unless you like database programming, it's going to suck.

-Business Intelligence, Data Warehousing, and Reporting (wtf?)

Can't comment without a better description of what this class entails.

-Special Topics in Software Developement

Can't comment without a better description of what this class entails.

-Advanced Special Topics in Software Developement

Can't comment without a better description of what this class entails.


Kinja'd!!! JasonStern911 > ToyDeathbot
01/06/2015 at 00:05

Kinja'd!!!0

I disagree. if you can actually master a language, then picking up a second one shouldn't be that hard unless the programming paradigm is foreign. but in the process of mastering a single language, one comes across situations developing problem solving skills that one wouldn't learn reading a plethora of "teach yourself ____ in 24 hours" books.


Kinja'd!!! TDogg > thejustache
01/06/2015 at 00:11

Kinja'd!!!1

Thanks for the input - very helpful! :)

I think I'll be going for C++ & SQL. Hopefully, those two plus Java in the mobile dev class should give me enough to be dangerous.


Kinja'd!!! RiceRocketeer Extraordinaire > TDogg
01/06/2015 at 00:11

Kinja'd!!!0

definitely the database class if you don't have exposure to that already. I do some interviewing and training of new tech ppls and that's what's been missing from a lot of school curriculums.

Most imperative languages work similarly; we're mostly a java shop but we've had to do python and c# and flash actionscript on occasion and expect everyone to be able to pick up things quickly depending on the client's environment.

And don't knock reporting, there's money to be made there.  basically creating SQL scripts to retrieve data to populate scheduled reports, e.g. all new patient registrations within the last week from facilities A B C etc ...


Kinja'd!!! JasonStern911 > TDogg
01/06/2015 at 00:13

Kinja'd!!!1

Learn the lowest level language you can (likely C++), but actually learn how things work. Don't learn to use std::string if you cannot write your own string class. Don't learn to use std::vector if you cannot write a dynamic array class. Understand passing by value versus passing by reference. Understand the basic data structures and the benefits and overhead associated with using each. Learn common mistakes that lead to security vulnerabilities and how to avoid them.


Kinja'd!!! TDogg > JasonStern911
01/06/2015 at 00:24

Kinja'd!!!0

Awesome feedback!

Ok, this pretty well solidifies my choice for C++.

As far as the second set of classes...

Business Intelligence, Data Warehousing, and Reporting

COURSE DESCRIPTION:

Introduces students to technology and techniques used to effectively consolidate,arrange,and analyze vast amounts of data. Data analytics has become a highly sought after skill in many industries. Students will be introduced to data warehousing, business intelligence, and related topics such as decision support systems, data mining, web mining, and customer relationship management. Emphasis is placed on learning how to derive business value from large amounts of data.

Topical areas of study include – Knowledge management using databases, Databases as related to big data, Report writing, Graphing information, Query selection criteria, Data maintenance, Decision making, Tools used for query writing and reporting

Advanced/Special Topics in Software Development

Both of these classes say:

CATALOG DESCRIPTION: Discusses topics of current interest in software development with emphasis on the application of information technology skills during lab time. Identifies and offers various special topics during each term under this course number

COURSE CONTENT: Topical areas of study include – To be determined by the campus offering this special topic class.

Pretty uninformative lol.


Kinja'd!!! thejustache > TDogg
01/06/2015 at 00:26

Kinja'd!!!0

I think you'll be in good shape!


Kinja'd!!! JasonStern911 > TDogg
01/06/2015 at 00:32

Kinja'd!!!1

The first one sounds relevant.

The "application of information technology skills" in the last two concern me.

Honestly, I'd try to get either an associates degree or a minor in an unrelated field, ideally an evolving one like biotechnology. The high paying jobs of tomorrow aren't going to be completely tech oriented, but to be able to apply programming to non-programming fields in order to improve efficiency. Think of the value to a scientist if you could assist by writing a program to eliminate a lot of experiments/field trials prior to a company investing the time and expense experimenting with an impossible scenario. And you'd have a lot better chance of making a reasonable wealth by finding a niche that can be improved versus trying to become the next Google, although there is nothing wrong with aiming big.